# 1.使用循环控制打印99乘法表
# 打印结果如下所示 (不包括前面的#号) 必须每列对齐
# 1x1=1   1x2=2   1x3=3   1x4=4   1x5=5   1x6=6   1x7=7   1x8=8   1x9=9
# 2x2=4   2x3=6   2x4=8   2x5=10  2x6=12  2x7=14  2x8=16  2x9=18
# 3x3=9   3x4=12  3x5=15  3x6=18  3x7=21  3x8=24  3x9=27
# 4x4=16  4x5=20  4x6=24  4x7=28  4x8=32  4x9=36
# 5x5=25  5x6=30  5x7=35  5x8=40  5x9=45
# 6x6=36  6x7=42  6x8=48  6x9=54
# 7x7=49  7x8=56  7x9=63
# 8x8=64  8x9=72
# 9x9=81


# note: print 是一个python内置函数  有一个参数 end可以控制打印的结尾
#       end默认是一个换行符  也即 print("hello")会打印hello\n  而print("hello",end='')会仅打印hello


# 2.模拟打印安装进度条

# 要求有数值进度和横条进度
# [>-------------------------------]00.00%
# [===============================>]100.00%

# Note: 转义符 \r 可以让字符打印停留在一行上
#       import time这个模块  使用time.sleep(0.2) 模拟进度间隔

import time
spin = '|/-\\'
for i in range(20):
    # 进度控制代码示例
    print(spin[i % 4] + "=" * i + ">", '\r', end='')
    # ##########
    # 进度休眠
    time.sleep(.2)
print()








# 参考答案
# import time
# spin = '|/-\\'
# # 控制进度条长度
# length = 30
# for i in range(length+1):
#     if i != length:
#         # 如果不是最后一个 则打印旋转字符  形成转圈假象
#         start = spin[i % 4]
#     else:
#         # 如果是最后一轮 则打印 = 和进度控制中间部分对应
#         start = "="
#     # 进度条拼接  
#     #         使用 length和i控制单个字符重复  使得总长度固定         这里控制任务百分比          \r转义 让光标回到行首        
#     prt_str = "[" + start + "="*i + ">" + "-"*(length-i) + "]" + "{:4.2%}".format(i/length) + '\r'
#     #            这里end='' 让print 末尾不打印换行
#     print(prt_str, end='')
#     time.sleep(.1)
# print()
